package com.jhgsys.internal.base.service;

import com.jhgsys.internal.base.dto.BaseAreDto;
import com.jhgsys.internal.base.entity.BaseArea;
import com.jhgsys.internal.common.entity.QueryRequest;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 区域设置 Service接口
 *
 * @author admin
 * @date 2024-07-31 14:35:47
 */
public interface IBaseAreaService extends IService<BaseArea> {
    /**
     * 查询（分页）
     * @author admin
     * @date 2024-07-31 14:35:47
     * @param request QueryRequest
     * @param baseArea baseArea
     * @return IPage<BaseArea>
     */
    IPage<BaseAreDto> findBaseAreaPage(QueryRequest request, BaseAreDto baseArea);


    /**
     * 获取排班列表
     * @param request
     * @param baseArea
     * @return
     */
    IPage<Map<String,Object>> findbaseAreaSchedulingInfoPage(QueryRequest request, BaseAreDto baseArea , Date startDate, Date endDate);



    /**
     * 查询（所有）
     * @author admin
     * @date 2024-07-31 14:35:47
     * @param baseArea baseArea
     * @return List<BaseArea>
     */
    List<BaseArea> findBaseAreaList(BaseArea baseArea);

    /**
    * 根据ID查询
    * @author admin
    * @date 2024-07-31 14:35:47
    * @param id
    * @return BaseArea
    */
    BaseArea findBaseAreaById(String id);

    /**
     * 新增
     * @author admin
     * @date 2024-07-31 14:35:47
     * @param baseArea baseArea
     */
    void createBaseArea(BaseArea baseArea);

    /**
     * 修改
     * @author admin
     * @date 2024-07-31 14:35:47
     * @param baseArea baseArea
     */
    void updateBaseArea(BaseArea baseArea);

    /**
     * 逻辑删除
     * @author admin
     * @date 2024-07-31 14:35:47
     * @param baseArea baseArea
     * @param baseAreaIds baseAreaIds
     */
    void deleteBaseArea(BaseArea baseArea,String baseAreaIds);

    /**
    * 物理删除
    * @author admin
    * @date 2024-07-31 14:35:47
    * @param baseAreaIds baseAreaIds
    */
    void physicallyDeleteBaseArea(String baseAreaIds);
}
